/***********************************************************************
 * Module:  WeChatPayUnifiedOrderManager.java
 * Author:  SAGE-GENERATOR
 * Purpose: DDD: domain 领域层,领域服务(Domain Services):
 *      一些行为无法归类到实体对象或值对象上，本质是一些操作，而非事物。
 ***********************************************************************/

package com.oweight.sagacious.payment.domain.service;

import com.oweight.sagacious.api.model.msg.Message;
import com.oweight.sagacious.payment.domain.model.WeChatPayRefundModel;
import com.oweight.sagacious.payment.domain.model.WeChatPayUnifiedOrder;

/**
 * 微信统一下单：领域服务接口
 *
 * @author SAGE
 * @version v1 2019-11-15 11:50:05
 */
public interface IWeChatPayManager {

    /**
     * 下单
     *
     * @param order
     * @param clientIp
     * @return
     */
    Message order(WeChatPayUnifiedOrder order, String clientIp);

    /**
     * 退款
     *
     * @param refundModel
     * @return
     */
    Message refund(WeChatPayRefundModel refundModel);


    /**
     * 扫码支付
     *
     * @return
     */
    Message sweepCodePayment();
}
